const Base = require('./base.js');
const Mock = require('mockjs');
const fs = require('fs-extra');
const path = require('path');

module.exports = class extends Base {
  indexAction() {
    return this.display();
  }
  
  async mockAction() {
    if (this.isPost) {
      // 生成模拟数据
      const mockOption = {
        'data|2000': [
          {
            'type|1': ['丢失', '捡到'], // 事件类型
            'user_id': 1,
            'title|1': '@ctitle(10,20)', // 学校名称
            'address': '@county(true)', // 学校地址
            'image_ids': '1,2,3',
            'linkman': '@cname()',
            'mobile': /^1[38][1-9]\d{8}/, // 联系电话
            'create_time': '@integer(1547394126,1557762084)', // 时间戳（秒）
            'status': 1,
            'finished': 0,
            'description': '@cparagraph(10,20)', // 介绍
          }],
      };
      let data = await Mock.mock(mockOption);
      
      // 删除已有的数据
      await this.model('event').where(true).delete();
      // 添加新的模拟数据
      await this.model('event').addMany(data.data);
      
      data = await this.model('event').select();
      return this.success(data);
    }
  }
  
  // // 图片上传
  // async uploadAction() {
  //   think.logger.debug(this.post());
  //
  //   const storage = this.post('storage') || 'local';
  //
  //   let s = storage.toLowerCase();
  //   if (s === 'local') {
  //     const file = this.file('file'); // 七牛云单一文件上传必须使用token,file作为key
  //     if (!file) {
  //       return this.fail(1000, '请上传文件');
  //     }
  //     think.logger.debug(file);
  //
  //     // 计算md5校验值，如果相同则不保存新的
  //     const buf = await fs.readFile(file.path);
  //
  //     const checksum_md5 = think.md5(buf);
  //
  //     let data = await this.model('image').where({
  //       md5: checksum_md5,
  //     }).find();
  //
  //     if (!think.isEmpty(data)) {
  //       return this.success({
  //         'id': data.id,
  //         'type': 'exist',
  //       }, '上传文件已经存在，使用已经存在的文件。');
  //     }
  //
  //     // 文件不存在
  //     // path.extname获取文件后缀名，可做上传控制
  //     const extname = path.extname(file.name);
  //     const filename = path.basename(file.path);
  //     const basename = think.md5(filename) + extname;
  //     const date = new Date();
  //     const year = date.getFullYear();
  //     const month = (date.getMonth() + 1) < 10 ? '0' + (date.getMonth() + 1) : (date.getMonth() + 1);
  //     const savepath = '/uploads/' + year + '/' + month + '/' + basename;
  //     const filepath = path.join(think.ROOT_PATH, 'www' + savepath);
  //
  //     think.mkdir(path.dirname(filepath));
  //     await fs.rename(file.path, filepath);
  //
  //     const row = await this.model('config').where({
  //       name: 'site',
  //     }).find();
  //
  //     let config = {};
  //     if (!think.isEmpty(row)) {
  //       config = JSON.parse(row.value);
  //     }
  //
  //     // data = {
  //     //   base_url: config.url,
  //     //   path: savepath,
  //     // };
  //     const id = await this.model('image').add({
  //       ...data,
  //       'storage': 'local',
  //       'md5': checksum_md5,
  //       'create_time': Math.round((new Date()).getTime() / 1000),
  //     });
  //     // data.id = id;
  //     // await this.hook('upload', data);
  //     return this.success({
  //       'id': id,
  //       'type': 'add',
  //     }, '上传成功');
  //   } else if (s === 'qiniu') {
  //     {
  //       //七牛云，目前无法判断文件是否已经存在
  //
  //       const data = this.post();
  //
  //       const id = await this.model('image').add({
  //         ...data,
  //         'storage': 'qiniu',
  //         // md5: checksum_md5,
  //         'create_time': Math.round((new Date()).getTime() / 1000),
  //       });
  //       data.id = id;
  //
  //       await this.hook('upload', data);
  //       return this.success({
  //         'id': id,
  //         'type': 'add',
  //       }, '上传成功');
  //     }
  //   }
  // }
};
